/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Autogenerated file -- DO NOT EDIT!

#include "bytecode_optimizer/runtime_adapter.h"
<%= Common::include_plugin_files "bytecodeopt", "runtime_adapter_inc" %>

namespace ark::bytecodeopt {

inline bool NeedToRunSimplifyStringBuilder(ark::SourceLanguage lang)
{
    switch(lang) {
% Common::each_plugin_suboption("bytecodeopt", "need_to_run_simplify_string_builder_inl") do |need_to_run_simplify_string_builder_inl, plugin_lang|
    <%= Common::include_plugin_files "bytecodeopt", "need_to_run_simplify_string_builder_inl" %>
% end
        default:
            break;
    }
    return false;
}

inline ark::BytecodeOptimizerRuntimeAdapter *CreateBytecodeOptimizerRuntimeAdapter(const ark::panda_file::File &panda_file, ark::ArenaAllocator &allocator, [[maybe_unused]] ark::SourceLanguage lang)
{
    switch(lang) {
% Common::each_plugin_suboption("bytecodeopt", "runtime_adapter_class") do |runtime_adapter_class, plugin_lang|
        case SourceLanguage::<%= plugin_lang %>:
            return allocator.New<<%= runtime_adapter_class %>>(panda_file);
% end
        default:
            break;
    }
    return allocator.New<ark::BytecodeOptimizerRuntimeAdapter>(panda_file);
}

} // ark::bytecodeopt